package cn.bdqn.config;

import cn.bdqn.common.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration(
        proxyBeanMethods = false
)
@Slf4j
public class WebMvcConfig {

    @Bean
    public WebMvcConfigurer webMvcConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
                //创建消息转换器对象
                MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
                //设置对象转换器，底层使用Jackson将Java对象转为json
                messageConverter.setObjectMapper(new JacksonObjectMapper());
                //将上面的消息转换器对象追加到mvc框架的转换器集合中
                converters.add(0, messageConverter);
            }
        };
    }
}
